请务必熟练使用ES6

let and const

  1. 作用域的概念
    在ES5,有两个作用域,全局作用域以及函数作用域,而在ES6中添加了块级作用域(花括号中)

  2. 如何使用let和const

解构赋值

  1. 什么是解构赋值? 总而言之就是两边对应结构,赋值

  2. 解构赋值的分类: 数组对象,字符串,布尔值, 函数参数, 数值

正则表达式扩展

  1. 正则新增特性:构造函数的变化,正则方法的扩展,u修饰符(识别unicode),y修饰符(与g修饰符的区别),s修饰符(可以识别换行符,回车符、行分隔符)

字符串扩展

  1. 字符串新增特性:unicode表示法,遍历接口,模板字符串,新增方法

数值扩展

  1. 新增方法,方法调整

数组扩展

  1. 数组新增特性:Array.from, Array.of, copyWithin, find/findIndex, fill, entries\keys\values, includes

函数扩展

  1. 函数新增特性:参数默认值,rest参数,扩展运算符,箭头函数,this绑定,尾调用

对象扩展

  1. 对象新增特性:简洁表示法,属性表达式,扩展运算符,Object新增方法

Symbol

  1. Symbol的概念:独一无二的值,声明的值永远不相等。

  2. Symbol的作用:保证声明的值是唯一的。

  3. for…in无法获取symbol属性以及for…of也无法获取

  4. getgetOwnPropertySymbols只取出symbol属性

  5. Reflect.ownKeys(obj)包含symbol以及非symbol

数据结构Map-Set

  1. Set,可以理解是数组,但不可以重复

  2. WeakSet,Set的弱引用,严格版

  3. Map,可以理解是Object,但key可以是任何的数据类型而不仅仅是字符串

  4. WeakMap,Map的弱引用,严格版

Map\Set和Array\Object的区别

  1. 优先级 Map > Set > Array > Object

Proxy和Reflect

  1. Proxy和Reflect的概念

  2. Proxy和Reflect的使用场景

  1. 类的概念:基本语法、类的继承、静态方法、静态属性、getter、setter

Pomise

  1. 什么是异步
    A执行完 => B (回调,事件触发,promise)
  2. Promise的作用

  3. Promise的基本用法

  4. Promise.all([]), Promise.race([]).

Iterator

  1. 什么是Iterator接口,[Symbol.iterator]

  2. Iterator的基本用法

  3. for… of得到的是value值

  4. 所有的Iterator接口都定义在[Symbol.iterator]属性上

Generator

  1. 基本概念:异步编程的一种解决方案:回调,promise,
    遍历器生成函数。
  2. next函数的用法

  3. yield*的语法

  4. 返回的就是一个Iterator

  5. 最大优势:状态机。概念,

  6. Generator函数,async语法,async,await

  7. 两个小实例:抽奖count,长轮询

Decorator

  1. 基本概念,修饰器是一个函数,用来修改类的行为

  2. 基本用法:

module

  1. 基本概念

  2. ES6的模块化语法[commonJS,sea.js,require.js]

  3. import,export